package com.zmn.oms.zmn.normal.business.interfaces.review;

import com.zmn.oms.common.dto.*;
import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.dto.work.compensate.CompensateDTO;
import com.zmn.oms.model.dto.work.refund.RefundDTO;
import com.zmn.oms.model.entity.review.OmsOrderReview;
import com.zmn.oms.model.entity.work.OrderWork;

/**
 * @ClassName OmsOrderReviewBService
 * @description:
 * @author: wangyanci
 * @create: 2021-08-09 15:05
 * @Version 1.0
 **/
public interface OmsOrderReviewBService {

    /**
     * 发起退款审核
     *
     * @param refundOrderWork
     * @param refundDTO
     */
    void initiateRefundReview(OrderWork refundOrderWork, RefundDTO refundDTO) throws OmsBaseException;

    /**
     * 终止审批
     */
    void stopReview(OmsOrderReview orderReview, OmsBaseOperator omsBaseOperator) throws OmsBaseException;

    /**
     * 钉钉审批回调
     */
    void reviewCallBack(DingTalkReviewResultDTO reviewResultDTO, RedisReviewDTO redisReviewDTO) throws OmsBaseException;

    void initiateCompensateReview(OrderWork compensateOrderWork, CompensateDTO compensateDTO) throws OmsBaseException;

    /**
     * oms审批完成
     *
     * @param omsReviewResultDTO
     * @throws OmsBaseException
     */
    void reviewComplete(Integer reviewResult, OmsOrderReview orderReview, OmsOperator omsOperator) throws OmsBaseException;
}
